#include <string>

#ifndef MYKEYBOARD_H_INCLUDED
#define MYKEYBOARD_H_INCLUDED

#define ALLEGRO_KEY_MOUSE_LCLICK    256
#define ALLEGRO_KEY_MOUSE_RCLICK    257
#define ALLEGRO_KEY_MOUSE_MCLICK    258

#define ALLEGRO_KEY_JOYSTICK_UP           259
#define ALLEGRO_KEY_JOYSTICK_LEFT         260
#define ALLEGRO_KEY_JOYSTICK_RIGHT        261
#define ALLEGRO_KEY_JOYSTICK_DOWN         262
#define ALLEGRO_KEY_JOYSTICK_BUTTON_1     263
#define ALLEGRO_KEY_JOYSTICK_BUTTON_2     264
#define ALLEGRO_KEY_JOYSTICK_BUTTON_3     265
#define ALLEGRO_KEY_JOYSTICK_BUTTON_4     266
#define ALLEGRO_KEY_JOYSTICK_BUTTON_5     267
#define ALLEGRO_KEY_JOYSTICK_BUTTON_6     268
#define ALLEGRO_KEY_JOYSTICK_BUTTON_7     269
#define ALLEGRO_KEY_JOYSTICK_BUTTON_8     270
#define ALLEGRO_KEY_JOYSTICK_BUTTON_9     271
#define ALLEGRO_KEY_JOYSTICK_BUTTON_10    272
#define ALLEGRO_KEY_JOYSTICK_BUTTON_11    273
#define ALLEGRO_KEY_JOYSTICK_BUTTON_12    274

enum {
    GUI_INPUT_ALL,
    GUI_INPUT_FILE_NAME,
    GUI_INPUT_NUMBERS
};
void Init_Mapping();
void Poll_Input(void *instance);
void Clear_Keyboard();
char key_to_char(int ind, int mode);


extern char KB_Input[];
extern char KB_Released[];
extern char KB_DoublePressed[];
extern char KB_Active[];

extern int KB_TimePressed[];

extern ALLEGRO_MOUSE_STATE mous;
extern ALLEGRO_KEYBOARD_STATE keyb;

extern float last_mouse_x, last_mouse_y, last_mouse_z, mouse_x, mouse_y, mouse_z, mick_x, mick_y, mick_z;


#endif
